package com.itbaizhan.dao;

import com.itbaizhan.domain.Account;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;
//注解 放进spring容器
@Repository
public interface AccountDao {
    //根据id查询用户
    @Select("select * from account where id=#{id}")
    Account findById(int id);
    //修改用户  可以用于修改金额
    @Update("update account set balance=#{balance} where id=#{id}")
    void update(Account account);
}
/*
Spring进行事务控制的功能是由三个接口提供的，这三个接口是Spring实现的，
在开发中我们很少使用到，只需要了解他们的作用即可：

PlatformTransactionManager接口
PlatformTransactionManager是Spring提供的事务管理器接口，所有事务管理器都实现了该接口。该接口中提供了三个事务操作方法：

TransactionStatus getTransaction（TransactionDefinition definition）：获取事务状态信息。
void commit（TransactionStatus status）：事务提交
void rollback（TransactionStatus status）：事务回滚
TransactionDefinition接口
TransactionDefinition是事务的定义信息对象，它有如下方法：

String getName()：获取事务对象名称。
int getIsolationLevel()：获取事务的隔离级别。
int getPropagationBehavior()：获取事务的传播行为。
int getTimeout()：获取事务的超时时间。
boolean isReadOnly()：获取事务是否只读。
TransactionStatus接口
TransactionStatus是事务的状态接口，它描述了某一时间点上事务的状态信息。它有如下方法：

void flush() 刷新事务
boolean hasSavepoint() 获取是否存在保存点
boolean isCompleted() 获取事务是否完成
boolean isNewTransaction() 获取是否是新事务
boolean isRollbackOnly() 获取是否回滚
void setRollbackOnly() 设置事务回滚*/